#include <head.h>

//消息队列的接收

typedef union meg_data
{
    char data[24];

    struct
    {
        char name[23];
        unsigned int sex : 1; // 1表示 男 0:表示女
        unsigned int age : 7; // 最大 127
    };
} meg_data;

// 创建结构体
typedef struct message
{
    // 队列的类型
    long mtype;
    // 队列的数据
    char name[23];
    char sex[5];
    int age;
    int id;
} message;

int main(int argc, char const *argv[])
{
    message msg_data[20] = {
        {.mtype = 1, .name = "张1", .sex = "男", .age = 18, .id = 1},
        {.mtype = 2, .name = "张2", .sex = "男", .age = 18, .id = 1},
        {.mtype = 3, .name = "张3", .sex = "男", .age = 18, .id = 1},
        {.mtype = 4, .name = "张4", .sex = "男", .age = 18, .id = 1},
        {.mtype = 80, .name = "张80", .sex = "男", .age = 18, .id = 1},
        {.mtype = 90, .name = "张90", .sex = "男", .age = 18, .id = 1}
    };

    for (size_t i = 0; i < 6; i++)
    {
        if (-1 == msgsnd(0, &msg_data[i], sizeof(msg_data[i]) - sizeof(msg_data[i].mtype), 0))
        {
            perror("msgsnd error:");
        }
    }

    printf("发送完成\n");

    return 0;
}
